using System.Collections;
using Concurso;
using Curriculum.Modelo.Clases;
using Curriculum.Modelo.Enum;
using Curriculum.Services;

namespace ConcursoCV.UI.WebUserControls.Concurso
{
	using System;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;

	/// <summary>
	///		Summary description for ABMConcursos.
	/// </summary>
	public class ABMConcursos : System.Web.UI.UserControl
	{
		protected System.Web.UI.WebControls.TextBox txtNombre;
		protected System.Web.UI.WebControls.Button btnAceptar;
		protected System.Web.UI.WebControls.RegularExpressionValidator revRealizationDate;
		protected Pluspetrol.Core.UIControls.WebControls.CDatePicker dtpFecha;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvFecha;
		protected System.Web.UI.WebControls.DropDownList ddlDepartamento;
		protected System.Web.UI.WebControls.DropDownList ddlArea;
		protected System.Web.UI.WebControls.TextBox txtDescripcion;
		protected System.Web.UI.WebControls.Button btnCancelar;
		protected System.Web.UI.WebControls.TextBox txtResolucion;
		protected System.Web.UI.WebControls.Label lblTitulo;
		protected System.Web.UI.WebControls.ValidationSummary valSum;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvNombre;
		protected System.Web.UI.WebControls.TextBox txtSuplente1;
		protected System.Web.UI.WebControls.ImageButton btnBuscarSuplente1;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvSuplenteUno;
		protected System.Web.UI.WebControls.Panel pnlSuplente1;
		protected System.Web.UI.WebControls.TextBox txtSuplente2;
		protected System.Web.UI.WebControls.ImageButton btnBuscarSuplente2;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvSuplenteDos;
		protected System.Web.UI.WebControls.Panel pnlSuplente2;
		protected System.Web.UI.WebControls.TextBox txtSuplente3;
		protected System.Web.UI.WebControls.ImageButton btnBuscarSuplente3;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvSuplenteTres;
		protected System.Web.UI.WebControls.Panel pnlSuplente3;
		protected System.Web.UI.WebControls.TextBox txtTitular1;
		protected System.Web.UI.WebControls.ImageButton btnBuscarTitular1;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvTitular1;
		protected System.Web.UI.WebControls.Panel pnlTitular1;
		protected System.Web.UI.WebControls.TextBox txtTitular2;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvTitular2;
		protected System.Web.UI.WebControls.Panel pnlTitular2;
		protected System.Web.UI.WebControls.TextBox txtTitular3;
		protected System.Web.UI.WebControls.ImageButton btnBuscarTitular3;
		protected System.Web.UI.WebControls.RequiredFieldValidator rfvTitular3;
		protected System.Web.UI.WebControls.Panel pnlTitular3;
		protected System.Web.UI.WebControls.ImageButton btnBuscarTitular2;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidTitular1;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidTitular2;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidTitular3;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidSuplente1;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidSuplente2;
		protected System.Web.UI.HtmlControls.HtmlInputHidden hidSuplente3;
		protected WebUserControls.Users.UserSearch ucSearchTitular1;
		protected WebUserControls.Users.UserSearch ucSearchTitular2;
		protected WebUserControls.Users.UserSearch ucSearchTitular3;
		protected WebUserControls.Users.UserSearch ucSearchSuplente1;
		protected WebUserControls.Users.UserSearch ucSearchSuplente2;
		protected WebUserControls.Users.UserSearch ucSearchSuplente3;
		protected System.Web.UI.WebControls.ImageButton btnBorrarTitular1;
		protected System.Web.UI.WebControls.ImageButton btnBorrarSuplente1;
		protected System.Web.UI.WebControls.ImageButton btnBorrarSuplente2;
		protected System.Web.UI.WebControls.ImageButton btnBorrarSuplente3;
		protected System.Web.UI.WebControls.ImageButton btnBorrarTitular2;
		protected System.Web.UI.WebControls.ImageButton btnBorrarTitular3;
		protected StrengthControls.Scrolling.SmartScroller ucSmartScroller;
		protected System.Web.UI.WebControls.RadioButtonList rblModalidad;
		protected System.Web.UI.WebControls.Panel pnlPares;
		protected System.Web.UI.WebControls.Panel pnlModalidad;
		protected System.Web.UI.WebControls.DropDownList ddlJuradosPares;		
		
		private PageMode mode;
		private string concursoId = null;
		
		private const string TITULAR = "Titular";
		private const string SUPLENTE = "Suplente";
		private const char SEPARATOR = ':';
		private const char SEPARATORPARES = 'a';
		private const int CANT_JURADOS_TITULARES = 3;
		private const int CANT_JURADOS_SUPLENTES = 3;
		protected System.Web.UI.WebControls.RadioButtonList rblEstados;
		protected System.Web.UI.WebControls.Button btnCambiarEstado;
		protected System.Web.UI.WebControls.Panel pnlEstados;
		protected System.Web.UI.WebControls.Label lblParejaJurados;
		protected System.Web.UI.WebControls.Panel pnlLblJurados;
		protected System.Web.UI.WebControls.Label lblError;

		private const string pidListadoConcurso = "006";

		private void Page_Load(object sender, System.EventArgs e)
		{
			SetAttributesToControls();
			lblTitulo.Text = "Nuevo Concurso";

			string id = this.Request["concursoId"];
			if ( id != null ) 
			{
				concursoId = id;			
			}

			string pMode = this.Request["PageMode"];
			mode = pMode != null ? PageModeConverter.ToEnum( pMode ) : PageMode.NEW;

			
			if (!this.IsPostBack) 
			{
				btnCambiarEstado.Enabled = true;
				this.PopulateCombos();


				if ( mode == PageMode.EDIT || mode == PageMode.VIEW ) 
				{
					this.pnlEstados.Visible = true;
					this.rblEstados.Enabled = false;
					CargaConcursoAControles();
				}

				if ( mode == PageMode.EDIT )
				{
					lblTitulo.Text = "Modificar Concurso";
				}

				if ( mode == PageMode.VIEW ) 
				{
					lblTitulo.Text = "Ver Concurso";
					EnabledDisableControls(false);
				}
			}
		}

		private void SetAttributesToControls() 
		{
			this.btnBorrarTitular1.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtTitular1.ClientID,hidTitular1.ClientID));
			this.btnBorrarTitular2.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtTitular2.ClientID,hidTitular2.ClientID));
			this.btnBorrarTitular3.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtTitular3.ClientID,hidTitular3.ClientID));
			this.btnBorrarSuplente1.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtSuplente1.ClientID,hidSuplente1.ClientID));
			this.btnBorrarSuplente2.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtSuplente2.ClientID,hidSuplente2.ClientID));
			this.btnBorrarSuplente3.Attributes.Add("onclick",string.Format("BorrarControles('{0}','{1}');",txtSuplente3.ClientID,hidSuplente3.ClientID));
		}

		private void EnabledDisableControls(bool enabled)
		{
			HabilitarJurados(enabled);
			txtDescripcion.Enabled = enabled;
			txtResolucion.Enabled = enabled;
			txtNombre.Enabled = enabled;
			ddlDepartamento.Enabled = enabled;
			ddlArea.Enabled = enabled;
			dtpFecha.Enabled = enabled;
			btnAceptar.Enabled = enabled;
			pnlEstados.Enabled = enabled;
		}

		private void PopulateCombos()
		{
			PopulateComboDepartamentos();
			PopulateComboArea();
		}

		private void PopulateComboDepartamentos()
		{
			Helper.ListHelper.FillDropDownListLookup(ddlDepartamento,"DEPART",false);
		}
		private void PopulateComboArea()
		{
			Helper.ListHelper.FillDropDownListLookup(ddlArea,"AREA",false);
		}

		#region - Loads Methods -

		private IList CargaHiddenAConcurso(string tipo)
		{
			IList listaJurados = new ArrayList();
			for(int i = 1; i < 4 ; i++ )
			{
				listaJurados.Add(((HtmlInputHidden)(this.FindControl("hid" + tipo + i.ToString()))).Value);
			}
			return listaJurados;
		}

		private void CargarJuradosAControles(IList listaJuradosEnConcurso)
		{
			int juradoTitularNumero = 0;
			int juradoSuplenteNumero = 0;
			int numero = 0;
			string tipo = string.Empty;
			TextBox txt = null;
			HtmlInputHidden hid = null;
			Curriculum.Modelo.Clases.Jurado jurado = null;
			foreach(JuradoEnConcurso juradoEnConcurso in listaJuradosEnConcurso)
			{
				jurado = juradoEnConcurso.Jurado;
				if(juradoEnConcurso.EsTitular)
				{
					numero = ++juradoTitularNumero;
					tipo = TITULAR;
				}					
				else
				{
					numero = ++juradoSuplenteNumero;
					tipo = SUPLENTE;					
				}					
				txt = (TextBox) this.FindControl("txt" + tipo + numero);
				txt.Text = jurado.Nombre + " " + jurado.Apellido +
					SEPARATOR + jurado.Domicilio;		
				hid = (HtmlInputHidden) this.FindControl("hid" + tipo + numero);
				hid.Value = jurado.Id;
			}
		}


		private void CargaConcursoAControles()
		{
			ConcursoService svc = new ConcursoService();
			
			Curriculum.Modelo.Clases.Concurso concurso = svc.ObtenerConcurso(concursoId);
			
			txtNombre.Text = concurso.Nombre;
			txtDescripcion.Text = concurso.Descripcion;
			txtResolucion.Text = concurso.Resolucion;
			dtpFecha.Text = concurso.Fecha.ToString("dd/MM/yyyy");
			ddlDepartamento.SelectedValue = concurso.Departamento.Id;
			ddlArea.SelectedValue = concurso.Area.Id;
			rblEstados.SelectedValue = EstadoConcursoConverter.ToInt(concurso.Estado).ToString();
			EstadoAnterior = concurso.Estado;

			if (svc.ObtenerModalidad(concurso.Id).Equals(Modalidad.PARES))
			{
				this.pnlLblJurados.Visible = true;
				this.pnlLblJurados.Enabled = false;
				this.pnlPares.Visible = false;
				
				CalificadorConcursoCVs calificadorDePareja = svc.ObtenerCalificadorDePareja(concurso.Id);
				string nombreJurado1 = ((JuradoEnConcurso)calificadorDePareja.JuradosEnConcurso.GetValue(0)).Jurado.NombreCompleto;
				string nombreJurado2 = ((JuradoEnConcurso)calificadorDePareja.JuradosEnConcurso.GetValue(1)).Jurado.NombreCompleto;
				this.lblParejaJurados.Text = nombreJurado1 + " - " + nombreJurado2; 
			}			
			if( concurso.Estado != EstadoConcurso.CREADO && concurso.Estado != EstadoConcurso.ABIERTOAINSCRIPCION)
			{
				HabilitarJurados(false);
				this.pnlModalidad.Visible = true;
				this.pnlModalidad.Enabled = false;				
			}			
		
			rblModalidad.SelectedValue = ModalidadConverter.ToInt(svc.ObtenerModalidad(concurso.Id)).ToString();			
			CargarJuradosAControles(concurso.JuradosEnConcurso);
	
			if (concurso.Estado == EstadoConcurso.CERRADO)
			{
				this.btnCambiarEstado.Enabled = false;
				EnabledDisableControls(false);
			}			
	
		}

		private void CargarDatosAConcurso(Curriculum.Modelo.Clases.Concurso concurso)
		{
			concurso.Id = concursoId;
			concurso.Nombre = txtNombre.Text;
			concurso.Fecha = DateTime.Parse(dtpFecha.Text);
			concurso.Descripcion = txtDescripcion.Text;
			concurso.Resolucion = txtResolucion.Text;
			concurso.Departamento = (new LookupTypeService()).ObtenerLookup( ddlDepartamento.SelectedValue );
			concurso.Area = (new LookupTypeService()).ObtenerLookup( ddlArea.SelectedValue );
			concurso.Estado = mode == PageMode.NEW ? EstadoConcurso.CREADO : EstadoConcursoConverter.ToEnum( rblEstados.SelectedValue );
		}

		#endregion - Loads Methods -

		private void CrearConcurso(Curriculum.Modelo.Clases.Concurso concurso) 
		{
			ConcursoService service = new ConcursoService();
			concursoId = (string) service.CrearConcurso(concurso, CargaHiddenAConcurso(TITULAR), CargaHiddenAConcurso(SUPLENTE));
		}

		private void ModificarConcurso(Curriculum.Modelo.Clases.Concurso concurso) 
		{
			ConcursoService service = new ConcursoService();
			concursoId = (string) service.ModificarConcurso(concurso, CargaHiddenAConcurso(TITULAR), CargaHiddenAConcurso(SUPLENTE));
		}
		private void SaveData()
		{
			if ( mode == PageMode.VIEW ) 
			{
				btnCancelar_Click(null, null);
				return;
			}

			Curriculum.Modelo.Clases.Concurso concurso = new Curriculum.Modelo.Clases.Concurso();
			CargarDatosAConcurso(concurso);
			
			// UPDATE
			if ( mode == PageMode.EDIT ) 
			{
				ModificarConcurso(concurso);
			}
			else
			{
				if( mode == PageMode.NEW )
				{
					// CREATE
					CrearConcurso(concurso);
				}
			}								
			if(EstadoAnterior == EstadoConcurso.ABIERTOAINSCRIPCION && concurso.Estado == EstadoConcurso.INSCRIPCIONCERRADA)
			{
				CrearModalidad();
			}
			RedirigirAListadoConcurso();			
		}

		private void CrearModalidad()
		{
			ConcursoService svc = new ConcursoService();
			IList jurados = null;
			Modalidad modalidad = ModalidadConverter.ToEnum( rblModalidad.SelectedValue );
			if( modalidad == Modalidad.TODOSJUNTOS)
			{				
				jurados = new ArrayList();				
				// Agrego todos los ids de los jurados titulares
				for(int i = 1; i<4; i++)
				{
					HtmlInputHidden hid = (HtmlInputHidden) this.FindControl("hid" + TITULAR + i.ToString());
					jurados.Add(hid.Value);						
				}
				svc.CrearCalificador(concursoId, jurados);
			}
			else
			{
				if( modalidad == Modalidad.SEPARADOS)
				{
					// Tengo que llamar 3 veces a CrearCalificador
					// Creo 3 listas, cada una con un solo id de jurado
					for(int i = 1; i<4; i++)
					{
						HtmlInputHidden hid = (HtmlInputHidden) this.FindControl("hid" + TITULAR + i.ToString());
						jurados = new ArrayList();
						jurados.Add(hid.Value);
						svc.CrearCalificador(concursoId, jurados);
					}					
				}
				else
				{
					if( modalidad == Modalidad.PARES)
					{
						jurados = new ArrayList();
						jurados.Add( ddlJuradosPares.SelectedValue.Split(SEPARATORPARES)[0] );
						jurados.Add( ddlJuradosPares.SelectedValue.Split(SEPARATORPARES)[1] );
						svc.CrearCalificador(concursoId,jurados);
						for(int i = 1; i<4; i++)
						{
							HtmlInputHidden hid = (HtmlInputHidden) this.FindControl("hid" + TITULAR + i.ToString());
							if( !( hid.Value == jurados[0].ToString() || hid.Value == jurados[1].ToString() ))
							{
								jurados = new ArrayList();
								jurados.Add(hid.Value);
								break;
							}								
						}
						svc.CrearCalificador(concursoId, jurados);
					}
				}
			}
		}

		private void RedirigirAListadoConcurso()
		{			
			string url = "Default.aspx?pid=" + pidListadoConcurso + GetParametroTipo();
			Server.Transfer(url);
		}

		private string GetParametroTipo()
		{
			string tipoParam = string.Empty;
			if (this.Request["type"] != null)
			{
				tipoParam = "&type=" + this.Request["type"];
			}
			return tipoParam;
		}

		private void VisiblePnlJurado(bool visible, string tipo, string numero)
		{
			Panel pnl = (Panel) this.FindControl("pnl" + tipo + numero);
			pnl.Visible = visible;
		}

		private void LlenarTxtJurado(string tipo, string numero)
		{
			TextBox txt = (TextBox) this.FindControl("txt" + tipo + numero);
			HtmlInputHidden hid = (HtmlInputHidden) this.FindControl("hid" + tipo + numero);
			Users.UserSearch uc = (Users.UserSearch) this.FindControl("ucSearch" + tipo + numero);
			hid.Value = uc.GetSelectedUser.Id;
			txt.Text = uc.GetSelectedUser.Apellido + " " + uc.GetSelectedUser.Nombre +
				SEPARATOR + uc.GetSelectedUser.Domicilio;		
		}

		private string ObtenerIdJurado(string tipo, string numero)
		{
			return ((HtmlInputHidden) this.FindControl("hid" + tipo + numero)).Value;
		}

		private void HabilitarJurados(bool habilitar)
		{
			int indice = 1;
			string tipo = TITULAR;
			for (int i = 1; i<=6; i++)
			{
				((ImageButton)FindControl("btnBorrar" + tipo + indice)).Visible = habilitar;
				((ImageButton)FindControl("btnBuscar" + tipo + indice)).Visible = habilitar;
				indice++;
				
				if (i==3)
				{
					indice = 1;
					tipo = SUPLENTE;
				}
			}
		}

		#region - Properties -
		
		public bool btnAceptarVisible
		{
			set{ btnAceptar.Visible = value;}
		}
		public bool btnCancelarVisible
		{
			set{ btnCancelar.Visible = value;}
		}
		private EstadoConcurso EstadoAnterior
		{
			get
			{
				if( ViewState["_estadoConcurso"] == null)
					ViewState["_estadoConcurso"] = EstadoConcurso.CREADO;
				return (EstadoConcurso) ViewState["_estadoConcurso"];
			}
			set{ ViewState["_estadoConcurso"] = value;}
		}
		
		#endregion - Properties -

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			MyInitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.btnBuscarTitular1.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarTitular1_Click);
			this.btnBuscarTitular2.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarTitular2_Click);
			this.btnBuscarTitular3.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarTitular3_Click);
			this.btnBuscarSuplente1.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarSuplente1_Click);
			this.btnBuscarSuplente2.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarSuplente2_Click);
			this.btnBuscarSuplente3.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuscarSuplente3_Click);
			this.btnCambiarEstado.Click += new System.EventHandler(this.btnCambiarEstado_Click);
			this.rblModalidad.SelectedIndexChanged += new System.EventHandler(this.rblModalidad_SelectedIndexChanged);
			this.btnAceptar.Click += new System.EventHandler(this.btnAceptar_Click);
			this.btnCancelar.Click += new System.EventHandler(this.btnCancelar_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		private void MyInitializeComponent()
		{
			this.ucSearchTitular1.BtnAcceptClick+=new EventHandler(ucSearchTitular1_BtnAcceptClick);
			this.ucSearchTitular1.Close +=new EventHandler(ucSearchTitular1_Close);
			//
			this.ucSearchTitular2.BtnAcceptClick +=new EventHandler(ucSearchTitular2_BtnAcceptClick);
			this.ucSearchTitular2.Close +=new EventHandler(ucSearchTitular2_Close);
			//
			this.ucSearchTitular3.BtnAcceptClick +=new EventHandler(ucSearchTitular3_BtnAcceptClick);
			this.ucSearchTitular3.Close +=new EventHandler(ucSearchTitular3_Close);
			//
			this.ucSearchSuplente1.BtnAcceptClick +=new EventHandler(ucSearchSuplente1_BtnAcceptClick);
			this.ucSearchSuplente1.Close +=new EventHandler(ucSearchSuplente1_Close);
			//
			this.ucSearchSuplente2.BtnAcceptClick +=new EventHandler(ucSearchSuplente2_BtnAcceptClick);
			this.ucSearchSuplente2.Close +=new EventHandler(ucSearchSuplente2_Close);
			//
			this.ucSearchSuplente3.BtnAcceptClick +=new EventHandler(ucSearchSuplente3_BtnAcceptClick);
			this.ucSearchSuplente3.Close +=new EventHandler(ucSearchSuplente3_Close);
		}

		#endregion

		private void btnCancelar_Click(object sender, System.EventArgs e)
		{
			RedirigirAListadoConcurso();
		}

		private void btnAceptar_Click(object sender, System.EventArgs e)
		{
			if( ValidarJurados())
				SaveData();
			else
			{
				lblError.Text = "Los jurados no se pueden repetir";
				ucSmartScroller.ScrollTo(0,0);
			}				
		}

		private bool ValidarJurados()
		{
			bool juradosCorrectos = true;
			ArrayList listaJuradoIds = new ArrayList();
			for(int i=1; i<=CANT_JURADOS_TITULARES;i++)
				listaJuradoIds.Add(int.Parse(ObtenerIdJurado(TITULAR, i.ToString())));
			for(int i=1; i<=CANT_JURADOS_SUPLENTES;i++)
				listaJuradoIds.Add(int.Parse(ObtenerIdJurado(SUPLENTE, i.ToString())));
			listaJuradoIds.Sort();
			int idAnterior = 0;
			foreach(int id in listaJuradoIds)
			{
				if( id == idAnterior )
				{
					juradosCorrectos = false;
					break;
				}
				idAnterior = id;
			}
			return juradosCorrectos;
		}

		private void btnBuscarTitular1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,TITULAR,"1");
		}

		private void ucSearchTitular1_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(TITULAR,"1");
			VisiblePnlJurado(false,TITULAR,"1");
		}

		private void ucSearchTitular1_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,TITULAR,"1");
		}

		private void ucSearchTitular2_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(TITULAR,"2");
			VisiblePnlJurado(false,TITULAR,"2");
		}

		private void ucSearchTitular2_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,TITULAR,"2");
		}

		private void ucSearchTitular3_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(TITULAR,"3");
			VisiblePnlJurado(false,TITULAR,"3");
		}

		private void ucSearchTitular3_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,TITULAR,"3");
		}

		private void ucSearchSuplente1_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(SUPLENTE,"1");
			VisiblePnlJurado(false,SUPLENTE,"1");
		}

		private void ucSearchSuplente1_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,SUPLENTE,"1");
		}

		private void ucSearchSuplente2_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(SUPLENTE,"2");
			VisiblePnlJurado(false,SUPLENTE,"2");
		}

		private void ucSearchSuplente2_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,SUPLENTE,"2");
		}

		private void ucSearchSuplente3_BtnAcceptClick(object sender, EventArgs e)
		{
			LlenarTxtJurado(SUPLENTE,"3");
			VisiblePnlJurado(false,SUPLENTE,"3");
		}

		private void ucSearchSuplente3_Close(object sender, EventArgs e)
		{
			VisiblePnlJurado(false,SUPLENTE,"3");
		}

		private void btnBuscarSuplente1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,SUPLENTE,"1");
		}

		private void btnBuscarSuplente2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,SUPLENTE,"2");
		}

		private void btnBuscarSuplente3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,SUPLENTE,"3");		
		}

		private void btnBuscarTitular2_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,TITULAR,"2");		
		}

		private void btnBuscarTitular3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			VisiblePnlJurado(true,TITULAR,"3");		
		}

		private void rblModalidad_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			if( int.Parse(rblModalidad.SelectedValue) == ModalidadConverter.ToInt(Modalidad.PARES))
			{
				pnlPares.Visible = true;
				ListItem li = null;
				ddlJuradosPares.Items.Clear();
				string valor = string.Empty;
				string texto = string.Empty;
				int adicional = 0;
				for(int i=1; i<4;i++)
				{
					
					HtmlInputHidden hid = (HtmlInputHidden)this.FindControl("hid" + TITULAR + i.ToString());					
					TextBox text = (TextBox) this.FindControl("txt" + TITULAR + i.ToString());
					valor = hid.Value;
					texto = text.Text.Split(SEPARATOR)[0];
					adicional = i != 3 ? i+1 : 1;
					hid = (HtmlInputHidden)this.FindControl("hid" + TITULAR + (adicional).ToString());
					text = (TextBox) this.FindControl("txt" + TITULAR + (adicional).ToString());					
					valor = valor + SEPARATORPARES + hid.Value;
					texto = texto + "-" + text.Text.Split(SEPARATOR)[0];
					li = new ListItem( texto, valor );
					ddlJuradosPares.Items.Add(li);
				}
				ddlJuradosPares.DataBind();				
			}
			else
			{
				pnlPares.Visible = false;
			}
		}

		private void btnCambiarEstado_Click(object sender, System.EventArgs e)
		{			
			EstadoConcurso proxEstado = EstadoConcursoConverter.ObtenerProximoEstado( EstadoConcursoConverter.ToEnum( rblEstados.SelectedValue) );
			rblEstados.SelectedValue = EstadoConcursoConverter.ToInt( proxEstado ).ToString();
			if( proxEstado == EstadoConcurso.INSCRIPCIONCERRADA )
			{
				this.pnlModalidad.Visible = true;
				this.pnlModalidad.Enabled = true;
			}			
			btnCambiarEstado.Enabled = false;
		}
	}
}
